package br.com.ss.exception;

import br.com.ss.enumeration.EMensageError;

public abstract class BaseException extends Exception {

	private static final long serialVersionUID = 1196211358134684298L;

	private String codigo;

	public BaseException(EMensageError msgErro) {
		super(msgErro.getValue());
		this.codigo = msgErro.getCodigo();
	}

	public BaseException(EMensageError msgErro, Object[] params) {
		super(msgErro.getValue(params));
		this.codigo = msgErro.getCodigo();
	}

	protected BaseException(String codigo, String msg) {
		super(msg);
		this.codigo = codigo;
	}

	@Deprecated
	public BaseException(String msg) {
		super(msg);
		this.codigo = getCodigo();
	}

	@Deprecated
	public BaseException(Exception e) {
		super(e);
		this.codigo = getCodigo();
	}

	public String getCodigo() {
		if(this.codigo == null) this.codigo = "0"; //TODO Verificar um codigo de erro padrao
		return codigo;
	}

}